1. Field of the Invention
The present invention relates to computer networks, and deals more particularly with methods, systems, and computer program products for managing storage resources in decentralized networks.
2. Description of the Related Art
In peer-to-peer, or “P2P”, networks, each communicating node has a networking program which allows it to initiate communications with another node having that program. The nodes are considered “peers” because the network is decentralized, with each node having the same capabilities (for purposes of the P2P exchange). The promise of P2P networks is a more efficient network where resources such as central processing unit (“CPU”) cycles, memory, and storage go unwasted. These networks are ad hoc, in that nodes may join and leave the networks at will. Thus, P2P networks may be characterized as “transient” networks.
Prior art P2P network programs provide facilities for dynamic query and discovery of peers. However, the existing techniques suffer from several drawbacks. Lack of persistent network addresses is one such drawback. Due to the dynamic addressing schemes with which network addresses are assigned to nodes, each time a particular node enters a P2P network, it will typically have a different Internet Protocol (“IP”) address. (Users with a dial-up account have different IP addresses for each log-in. Users of some “always-connected” networks such as certain digital subscriber line, or “DSL”, accounts may also have a different IP address for different log-ins.) This lack of persistent network addressing makes it difficult for nodes to “remember” where a particular service or content resource is available. Instead, when a node needs content or some type of service, it must typically issue a new discovery request and then determine how to choose from among a potentially large number of responses. This communication results in very bursty traffic.
Another drawback of existing P2P networks is that they have no trust model: because nodes have no persistent network addresses, there are no existing means of persistently tracking which nodes are considered trustworthy and which are not. Thus, when a node (or the user at that node) chooses a peer node from which to obtain a service or content, there is no “track record” or history available for use in determining how to select from among the set of nodes which answered the dynamic query. This absence of a trust model also means that existing P2P networks do not provide support for secure transactions among members of transient communities. (The JXTA project from Sun Microsystems, Inc. is a P2P architecture which provides the notion of a “peer group” or “shared space”, where nodes within the peer group may publish services. Among these services are a set of core services including membership, access, and resolver services. The defined approach applies the client/server models of authentication, authorization, and naming to peer groups. That is, the notion of centralization is maintained, but only at the peer group level. These peer groups are not properly characterized as being a transient community. Likewise, the Groove® product from Groove Networks, Inc. provides a set of “shared services” within a peer community, where this set includes security, member, and access control services. The security mechanisms are public key infrastructure (“PKI”) for authentication, and key exchange with shared secret keys for confidentiality. The requirement thus implied for digital signatures, digital certifications, and a shared security service negates the notion of a transient community.)
One popular P2P network is known as “GnutellaNet”. GnutellaNet uses a protocol that allows users to exchange files directly between the storage resources of their computers, without first going to a “download” web site. “Napster” is another well known P2P network implementation, in which users connect to a centralized web site to identify MP3 music files which they can then download from one another's computers. Whereas Napster is adapted specifically for MP3 files, GnutellaNet allows downloading any type of file content. A number of other P2P network implementations exist.
P2P networks have the potential to be more efficient than client/server networks. This increased efficiency potential arises from the fact that P2P networks have no centralized server. In the client/server model, the bulk of processing capability resides on a centralized server, and thus the processing load tends to be concentrated at this server. In P2P networks, there is the potential for distributing tasks across all the nodes in the network, resulting in more efficient use of network resources. The dynamic nature of P2P systems, and their potential for efficient load distribution, has been promoted as making them the next evolution in information technology (“IT”) architecture. However, because of limitations such as those described above, existing P2P networks have been relegated to the consumer and “for-free” markets, and are not well suited for conducting high volume business (such as eBusiness or Business-to-Business transactions). (And as stated above, existing P2P implementations are not well suited for secure transactions within transient communities, which are typically critical for eBusiness.)
Furthermore, conventional P2P systems are unmanaged and homogenous, making it impractical to implement P2P within a large-scale, robust IT architecture where many different types of devices must be capable of interoperating in a manageable way.
What is needed are techniques for capitalizing on the advantages and potential of P2P networks, while avoiding the drawbacks and limitations of existing approaches.